﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

using Domain; //подключение Domain
using Session; //подключение Session
using Notif; //подключение Notif

namespace Department
{
    public partial class FormDp : Form
    {
        BrokerDep b_dp = new BrokerDep(); // объявление BrokerDep
        FormDpUpd f_DpUpd = new FormDpUpd(); // объявление FormDpUpd

        public FormDp()
        {
            InitializeComponent();
        }

        private void Dp_sBt_Ex_Click(object sender, EventArgs e) // закрытие формы
        {
            this.Close();
        }

        private void Dp_sBt_Insr_Click(object sender, EventArgs e) // открытие формы "Добавить"
        {
            FormDpInsr f_DpInsr = new FormDpInsr();
            f_DpInsr.ShowDialog();  
        }

        private void Dp_sBt_Upd_Click(object sender, EventArgs e) // открытие формы "Редактирование"
        {
            f_DpUpd.ShowDialog();            
        }

        private void Dp_dGV_Dp_SelectionChanged(object sender, EventArgs e) // метод на отслеживание и заполнение из Dp_dGV_Dp
        {
            DataGridViewCell cell = null; // объявление DataGridViewCell и его обнуление

            foreach (DataGridViewCell selectedCell in Dp_dGV_Dp.SelectedCells) // цикл на выбор ячейки, при выборе ячейки из Dp_dGV_Dp, это значение устанавливается в selectedCell 
            {
                cell = selectedCell; // приравнивание cell и selectedCell
                break; // перерывание цикла
            }

            if (cell != null) // если cell не пустой, то
            {
                DataGridViewRow row = cell.OwningRow; // объявление DataGridViewRow и присвоение ему текущего ряда 

                f_DpUpd.label2.Text = row.Cells[0].Value.ToString(); // передача значения из Cells[0] в f_DpUpd.label2.Text
                f_DpUpd.Dp_Upd_tE_Dep.Text = row.Cells[1].Value.ToString(); // передача значения из Cells[1] в f_DpUpd.Dp_Upd_tE_Dep.Text
            }
        }

        private void Dp_sBt_Del_Click(object sender, EventArgs e) // удаление записи
        {
            if (MessNotif.Question("Удалить запись?", "Удаление записи") == true) // вызов сообщение, если ответ "Да", то
            {
                Dm_Dep dep = new Dm_Dep(); // объявление Dm_Pers

                dep.Id_dep = Convert.ToInt32(f_DpUpd.label2.Text); // присвоение значений Id_pers из label2

                b_dp.Delete(dep); // вызов функции удаления

                FillGrid(); // вызов функции заполнения Grid 
            }
        }

        private void FormDp_Activated(object sender, EventArgs e) // при навидение фокуса, Grid перезаполняется
        {
            FillGrid(); // вызов функции заполнения
        }
        private void FillGrid() // функции заполнения Grid
        {
            Dp_dGV_Dp.DataSource = b_dp.FillGrid(); // вызов функции заполнения

            Dp_dGV_Dp.Columns[0].Visible = false;

            Dp_dGV_Dp.Columns[1].HeaderText = "Отделы";

            Dp_dGV_Dp.AutoResizeColumns();
            //Prs_dGV_Prs.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells;
        }
    }
}
